﻿using Abp.Application.Services;
using Abp.Application.Services.Dto;
using Hicap.QRCodeWarehouse.Application.Dto.Common;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Hicap.QRCodeWarehouse.Application
{
    public interface IQrCodeWarehouseApplicationBase<TEntityListDto, TEntityEditDto> : IApplicationService
        where TEntityListDto : IEntityDto
        where TEntityEditDto : class, IEntityDto<int?>
    {
        Task<int> BatchDelete(List<int> input);

        Task<int> BatchUpsert(List<CreateOrUpdateInput<TEntityEditDto>> inputs);

        Task<int> Delete(int input);

        Task<TEntityListDto> GetById(int input);

        Task<PagedResultDto<TEntityListDto>> PagedDatas(QueryInput queryInput);

        Task<int> Upsert(CreateOrUpdateInput<TEntityEditDto> input);
    }
}